package sy.service;

import java.io.Serializable;
import java.util.List;

import sy.model.SysUser;
import sy.model.SysUserUnitMapping;

public interface SysUserUnitMappingServiceI {

	/**
	 * 
	 * @Title		:save
	 * @Description	:TODO
	 * @param		:@param sysUserUnitMapping
	 * @param		:@return
	 * @return		:Serializable
	 * @author		:wujiayi
	 * @time		:2017年9月1日 下午5:41:14
	 * @throws
	 */
	Serializable save(SysUserUnitMapping sysUserUnitMapping);
	/**
	 * 
	 * @Title		:remove
	 * @Description	:TODO
	 * @param		:@param sysUserUnitMapping
	 * @return		:void
	 * @author		:Administrator
	 * @time		:2017年9月1日 下午5:41:30
	 * @throws
	 */
	void remove(SysUserUnitMapping sysUserUnitMapping);
	/**
	 * 
	 * @Title		:update
	 * @Description	:TODO
	 * @param		:@param sysUserUnitMapping
	 * @return		:void
	 * @author		:Administrator
	 * @time		:2017年9月1日 下午5:41:39
	 * @throws
	 */
	void update(SysUserUnitMapping sysUserUnitMapping);
	/**
	 * 
	 * @Title		:list
	 * @Description	:TODO
	 * @param		:@return
	 * @return		:List<SysUserUnitMapping>
	 * @author		:Administrator
	 * @time		:2017年9月1日 下午5:41:49
	 * @throws
	 */
	List<SysUserUnitMapping> list();
	/**
	 * 
	 * @Title		:getSysUserUnitMappingById
	 * @Description	:TODO
	 * @param		:@param id
	 * @param		:@return
	 * @return		:SysUserUnitMapping
	 * @author		:Administrator
	 * @time		:2017年9月1日 下午5:42:16
	 * @throws
	 */
	SysUserUnitMapping getSysUserUnitMappingById(String id);
	/**
	 * 
	 * @Title		:listSysUserUnitMappingByKey
	 * @Description	:TODO
	 * @param		:@param key
	 * @param		:@return
	 * @return		:List<SysUserUnitMapping>
	 * @author		:Administrator
	 * @time		:2017年9月1日 下午5:42:31
	 * @throws
	 */
	List<SysUserUnitMapping> listSysUserUnitMappingByKey(String key);
	/**
	 * 
	 * @Title		:listSysUserUnitMappingByOwnerId
	 * @Description	:TODO
	 * @param		:@param ownerId
	 * @param		:@return
	 * @return		:List<SysUserUnitMapping>
	 * @author		:Administrator
	 * @time		:2017年9月1日 下午5:42:47
	 * @throws
	 */
	List<SysUserUnitMapping> listSysUserUnitMappingByOwnerId(String ownerId);
	
	/**
	 * 
	 * @Title		:saveSysUserUnitMapping
	 * @Description	:TODO
	 * @param		:@param sysUserUnitMapping
	 * @param		:@return
	 * @return		:Serializable
	 * @author		:Administrator
	 * @time		:2017年9月1日 下午5:43:10
	 * @throws
	 */
	Serializable saveSysUserUnitMapping(List<SysUserUnitMapping> sysUserUnitMapping);
	/**
	 * 
	 * @Title		:removeByUser
	 * @Description	:TODO
	 * @param		:@param userId
	 * @return		:void
	 * @author		:wujiayi
	 * @time		:2017年9月2日 下午2:59:12
	 * @throws
	 */
	void removeByUser(String userId);
	
	/**
	 * @Title		:构造用户房址信息中间表
	 * @Description	:TODO
	 * @param		:@param sysUser
	 * @param		:@param unitIds
	 * @return		:void
	 * @author		:Administrator
	 * @time		:2017年9月2日 下午3:20:20
	 * @throws
	 */
	void writeIntoUserUnitMapping(SysUser sysUser,String[] unitIds);
	
	/**
	 * 
	 * @Title		:获取用户房址信息（通过单元返回楼栋，楼栋返回项目）
	 * @Description	:TODO
	 * @param		:@param userId
	 * @param		:@return
	 * @return		:List<String>
	 * @author		:Administrator
	 * @time		:2017年9月2日 下午3:47:05
	 * @throws
	 */
	List<String> getProjectsByUserId(String userId);
}
